VII. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

1. Kết luận

Đề tài "Xây dựng ứng dụng chat voice trên mạng nội bộ (LAN)" đã hoàn thành mục tiêu ban đầu: xây dựng một hệ thống truyền thông thoại và video trong thời gian thực hoạt động hoàn toàn trên mạng LAN, không phụ thuộc vào kết nối Internet. Hệ thống giải quyết được những hạn chế của các giải pháp thương mại hiện tại như độ trễ không cần thiết, phụ thuộc Internet và vấn đề bảo mật dữ liệu khi phải đi qua máy chủ bên ngoài.

Về mặt kỹ thuật, hệ thống đã đạt được những kết quả đáng chú ý. Phía backend được xây dựng trên kiến trúc SFU (Selective Forwarding Unit) sử dụng Mediasoup, cho phép định tuyến luồng media hiệu quả mà không cần transcode, giúp giảm tải CPU và duy trì chất lượng media gốc. Redis được tích hợp để lưu trữ trạng thái phòng và người dùng, đảm bảo khả năng khôi phục kết nối khi xảy ra sự cố. Phía client được phát triển dưới dạng ứng dụng desktop đa nền tảng sử dụng Electron kết hợp React và Zustand, mang lại trải nghiệm người dùng nhất quán trên Windows, macOS và Linux. Socket.IO được sử dụng cho signaling layer, cung cấp kết nối WebSocket với khả năng tự động reconnect và fallback về polling khi cần thiết.

Hệ thống hỗ trợ đầy đủ các tính năng cốt lõi của một ứng dụng truyền thông hiện đại. Người dùng có thể tạo và tham gia cuộc gọi nhóm với tối đa 50 người, thực hiện cuộc gọi trực tiếp 1-1 với cơ chế chấp nhận/từ chối/hủy cuộc gọi và timeout tự động 30 giây. Tính năng chat văn bản trong cuộc gọi hỗ trợ trả lời tin nhắn và thả emoji reactions, tăng tính tương tác. Hệ thống quản lý thiết bị audio/video cho phép người dùng lựa chọn microphone, loa và camera phù hợp. Đặc biệt, cơ chế grace period 30 giây kết hợp với hostless mode giúp duy trì tính liên tục của cuộc gọi ngay cả khi host tạm thời mất kết nối.

Đánh giá hiệu quả kỹ thuật cho thấy hệ thống đạt độ trễ signaling dưới 50ms và độ trễ media dưới 100ms nhờ hoạt động hoàn toàn trong môi trường LAN. Codec Opus được tối ưu với FEC (Forward Error Correction) và DTX (Discontinuous Transmission) đảm bảo chất lượng audio tốt ngay cả khi có packet loss. Video sử dụng VP8/H264 với bitrate thích ứng từ 600 Kbps đến 1.5 Mbps. Kiến trúc SFU cho phép mở rộng lên 50 người mà không làm quá tải server. Về độ ổn định, các cơ chế xử lý đồng thời như AsyncLock và CAS (Compare-And-Set) pattern đảm bảo không có race condition trong các critical section.

Về ứng dụng thực tế, hệ thống phù hợp triển khai trong môi trường nội bộ doanh nghiệp, trường học, phòng lab nghiên cứu hoặc bất kỳ tổ chức nào có mạng LAN ổn định và yêu cầu cao về bảo mật thông tin. Việc không cần Internet không chỉ giảm độ trễ mà còn đảm bảo dữ liệu không rời khỏi mạng nội bộ, đáp ứng các yêu cầu compliance nghiêm ngặt. Chi phí triển khai thấp so với các giải pháp thương mại, chỉ cần một server với cấu hình vừa phải và không phụ thuộc vào băng thông Internet.

2. Hạn chế

Mặc dù đã đạt được những kết quả tích cực, hệ thống vẫn còn một số hạn chế cần được cải thiện trong tương lai.

Về bảo mật và xác thực, hệ thống hiện tại chỉ sử dụng UUID và tên hiển thị để định danh người dùng mà không có cơ chế xác thực người dùng thực sự. Điều này chấp nhận được trong môi trường LAN nội bộ tin cậy, nhưng lại là điểm yếu nếu muốn mở rộng ra môi trường phức tạp hơn. Tin nhắn chat trong cuộc gọi cũng chưa được mã hóa end-to-end, dù media stream đã được mã hóa qua DTLS của WebRTC.

Về tính năng, hệ thống chưa hỗ trợ chia sẻ màn hình (screen sharing), một tính năng quan trọng cho các cuộc họp làm việc và trình diễn. Tính năng ghi âm/ghi hình cuộc gọi cũng chưa được triển khai, hạn chế khả năng lưu trữ lại nội dung cuộc họp quan trọng. Giao diện người dùng còn khá cơ bản, chưa có dark mode, virtual background hay các tính năng nâng cao khác. Hệ thống cũng chưa có phiên bản mobile app, giới hạn người dùng chỉ có thể tham gia qua desktop.

Về khả năng mở rộng, hệ thống hiện tại chạy trên single server, chưa có khả năng phân tán tải khi số lượng phòng và người dùng tăng cao. Trạng thái phòng chủ yếu lưu trong RAM với Redis backup, nếu server restart đột ngột có thể mất một phần state. Hệ thống chưa được kiểm thử hiệu năng với tải lớn (nhiều phòng 50 người đồng thời) để xác định ngưỡng giới hạn thực tế.

Về monitoring và vận hành, hệ thống chưa có dashboard theo dõi metrics như CPU usage, memory, số phòng đang hoạt động, số lượng người dùng trực tuyến. Chưa có error tracking và logging tập trung, gây khó khăn cho việc debug và troubleshooting khi triển khai thực tế.

Những hạn chế trên chủ yếu do thời gian và phạm vi đề tài, tập trung vào việc xây dựng core functionality và đảm bảo hệ thống hoạt động ổn định trước. Các tính năng nâng cao và tối ưu hóa để sẵn sàng production sẽ là hướng phát triển tiếp theo.

3. Hướng phát triển

Dựa trên những hạn chế hiện tại và xu hướng công nghệ, hệ thống có thể được phát triển theo các hướng sau.

Tăng cường bảo mật và xác thực người dùng. Tích hợp OAuth2 hoặc OpenID Connect để hỗ trợ đăng nhập qua Google, Microsoft Azure AD hoặc hệ thống SSO nội bộ của tổ chức. Triển khai JWT (JSON Web Token) cho session management với refresh token để tăng bảo mật. Thêm role-based access control (RBAC) để phân quyền chi tiết: admin có thể quản lý tất cả phòng, moderator có thể kick user, user thường chỉ có quyền cơ bản. Mã hóa end-to-end cho chat messages bằng thư viện như libsignal hoặc Web Crypto API để đảm bảo chỉ người tham gia mới đọc được tin nhắn.

Mở rộng tính năng media và collaboration. Hỗ trợ screen sharing với khả năng chia sẻ toàn màn hình hoặc chỉ một ứng dụng cụ thể, sử dụng Mediasoup screen producer với codec VP8/VP9 tối ưu cho nội dung màn hình. Triển khai recording functionality cho phép ghi lại audio/video/screen của cuộc họp, lưu trữ dưới định dạng MP4 hoặc WebM, với khả năng pause/resume trong khi ghi. Nâng cấp chat với các tính năng như file sharing, code snippet với syntax highlighting, markdown formatting và mentions (@user). Thêm virtual background sử dụng TensorFlow.js hoặc MediaPipe để phân tách người và nền, cho phép thay đổi background hoặc làm mờ nền.

Nâng cao chất lượng audio/video. Tích hợp noise cancellation và echo cancellation nâng cao sử dụng các thư viện như Krisp SDK hoặc WebRTC Audio Processing API để loại bỏ tiếng ồn nền và tiếng vọng. Hỗ trợ video full-HD (1080p) với adaptive bitrate dựa trên băng thông và CPU, tự động giảm quality khi network không ổn định. Triển khai simulcast để gửi nhiều quality levels cùng lúc, cho phép receiver chọn quality phù hợp. Thêm beauty filter và các hiệu ứng video khác để nâng cao trải nghiệm.

Cải thiện scalability và reliability. Triển khai multi-server architecture với Redis pub/sub cho signaling giữa các server, cho phép người dùng trên các server khác nhau tham gia cùng phòng. Thêm load balancer (Nginx hoặc HAProxy) với sticky session để phân phối tải đều. Sử dụng PostgreSQL hoặc MongoDB để lưu trữ persistent data như user profiles, call history, chat logs thay vì chỉ Redis. Triển khai distributed Mediasoup workers trên nhiều physical machines để tăng capacity. Thêm health check endpoints và auto-recovery mechanisms khi service bị lỗi.

Phát triển monitoring và analytics. Tích hợp Prometheus để thu thập metrics về CPU, memory, network, số lượng rooms, users, bitrate trung bình. Xây dựng Grafana dashboards để visualize metrics và cảnh báo khi có bất thường. Triển khai error tracking với Sentry hoặc Bugsnag để tự động capture và analyze errors. Thêm call quality metrics như packet loss, jitter, round-trip time và hiển thị cho user khi chất lượng kém. Logging tập trung với ELK stack (Elasticsearch, Logstash, Kibana) hoặc Loki để dễ dàng search và analyze logs.

Mở rộng nền tảng và trải nghiệm người dùng. Phát triển mobile app sử dụng React Native hoặc Flutter để hỗ trợ iOS và Android, sử dụng WebRTC native modules cho hiệu năng tốt hơn. Xây dựng web version dưới dạng Progressive Web App (PWA) để người dùng có thể join qua browser mà không cần cài app. Cải thiện UI/UX với dark mode, customizable themes, keyboard shortcuts, drag-and-drop interface. Thêm accessibility features như screen reader support, high contrast mode, subtitles/captions cho người khiếm thính.

Triển khai CI/CD và containerization. Dockerize toàn bộ stack (server, Redis, client build) để dễ dàng triển khai trên bất kỳ môi trường nào. Sử dụng Docker Compose cho development và Kubernetes cho production deployment với auto-scaling, rolling updates, và self-healing. Thiết lập CI/CD pipeline với GitHub Actions hoặc GitLab CI để tự động test, build và deploy mỗi khi có commit mới. Thêm automated testing với Jest, Cypress cho E2E tests và load testing với k6 hoặc Gatling.

Với những hướng phát triển trên, hệ thống Voice Chat có thể trở thành một platform truyền thông hoàn chỉnh và sẵn sàng cho môi trường production, phục vụ các tổ chức từ nhỏ đến lớn với yêu cầu cao về hiệu năng, bảo mật và tính sẵn sàng.